package com.ruoyi.standingbook.sanitationvehicle.service;

import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.standingbook.sanitationvehicle.domain.bo.SanitationVehicleBillBo;
import com.ruoyi.standingbook.sanitationvehicle.domain.vo.BillSendBean;
import com.ruoyi.standingbook.sanitationvehicle.domain.vo.SanitationVehicleBillVo;
import com.ruoyi.standingbook.v2toilet.enums.ItemStatusEnum;

import java.util.Collection;
import java.util.List;
import java.util.Map;

/**
 * 环卫作业车-异常工单Service接口
 *
 * @author lq
 * @date 2024-01-07
 */
public interface ISanitationVehicleBillService {

    /**
     * 查询V2市政公厕管养-异常工单
     */
	SanitationVehicleBillVo queryById(String id);

	SanitationVehicleBillVo queryByFlowCode(ItemStatusEnum commit, String code);

    /**
     * 查询V2市政公厕管养-异常工单列表
     */
    TableDataInfo<SanitationVehicleBillVo> queryPageList(SanitationVehicleBillBo bo, PageQuery pageQuery);

    /**
     * 查询V2市政公厕管养-异常工单列表
     */
    List<SanitationVehicleBillVo> queryList(SanitationVehicleBillBo bo);

    SanitationVehicleBillVo queryOne(SanitationVehicleBillBo bo);

    /**
     * 新增V2市政公厕管养-异常工单
     */
    Boolean insertByBo(SanitationVehicleBillBo bo);

    /**
     * 修改V2市政公厕管养-异常工单
     */
    Boolean updateByBo(SanitationVehicleBillBo bo);

    /**
     * 校验并批量删除V2市政公厕管养-异常工单信息
     */
    Boolean deleteWithValidByIds(Collection<String> ids, Boolean isValid);

    Boolean batchInsertByBo(List<SanitationVehicleBillBo> bills);

    Boolean batchInsertOrUpdate(List<SanitationVehicleBillBo> bills);

    List<String> listChangeInfo(Map<String, Object> map);

    List<BillSendBean> querySendValue(SanitationVehicleBillBo queryBo);

    int updateByFlowCode(ItemStatusEnum commit, List<String> ids);
    
    int updateByFlowCode(ItemStatusEnum commit, int modified, List<String> ids);

    SanitationVehicleBillVo flowData(SanitationVehicleBillBo bo);
    
    R<String> sendBills(String batchNo);
}
